package com.ztgf.shopping.models.vo.audit;

import com.ztgf.shopping.models.dto.audit.ProcessVO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * @Description:
 * @Author: mxli
 * @Date: 2020-12-07 17:07
 **/
@Data
public class RegisterShopVO implements Serializable {
    @ApiModelProperty(value = "提交状态 0初次提交， 4重新提交")
    private ProcessVO substatus;
    @ApiModelProperty(value = "审核类型 0注册，1开店，2资质变更，3新增品牌，4新增类目，5店铺变更")
    private ProcessVO auditType;
    @ApiModelProperty(value = "基本信息")
    private BaseInfoVO base;
    @ApiModelProperty(value = "基本资质")
    private List<QualificationInfoVO> qualificationInfoVOList = new ArrayList<>();
    @ApiModelProperty(value = "可售区域")
    private List<SalesAreaVO> salesAreaVOList = new ArrayList<>();
    @ApiModelProperty(value = "品牌相关")
    private List<BrandAuditVO> brandAuditVOList = new ArrayList<>();
    @ApiModelProperty(value = "审核")
    private AuditInfoVO audit;

    @Data
    public static class BaseInfoVO {
        @ApiModelProperty(value = "用户ID")
        private ProcessVO userId;
        @ApiModelProperty(value = "店铺ID")
        private ProcessVO shopId;
        @ApiModelProperty(value = "二级域名")
        private ProcessVO domain;
        @ApiModelProperty(value = "店铺类型 0专营店、1专卖店、2旗舰店、3自营店")
        private ProcessVO type;
        @ApiModelProperty(value = "公司名称")
        private ProcessVO name;
        @ApiModelProperty(value = "店铺名称")
        private ProcessVO shopName;
        @ApiModelProperty(value = "店铺本名")
        private ProcessVO shopRealName;
        @ApiModelProperty(value = "店铺简称")
        private ProcessVO shopAbbreviation;
        @ApiModelProperty(value = "银行")
        private ProcessVO bankName;
        @ApiModelProperty(value = "银行卡号")
        private ProcessVO bankCardNo;
        @ApiModelProperty(value = "开户行地址")
        private ProcessVO bankAddress;
        @ApiModelProperty(value = "法人身份证号")
        private ProcessVO idCard;
    }

    @Data
    public static class QualificationInfoVO {
        @ApiModelProperty(value = "品牌ID")
        private ProcessVO brandId;
        @ApiModelProperty(value = "审核状态 状态 0审核中，1审核通过，2审核打回，3审核不通过")
        private ProcessVO status;
        @ApiModelProperty(value = "文件地址 多个以逗号隔开")
        private ProcessVO fileUrl;
        @ApiModelProperty(value = "开始时间")
        private ProcessVO beginDate;
        @ApiModelProperty(value = "结束时间")
        private ProcessVO endDate;
        @ApiModelProperty(value = "类型 0营业执照，1法人身份证，2开户许可证，3商标注册证书，4续展证明文件，5ISO认证书，6品牌授权书")
        private ProcessVO qtype;
    }

    @Data
    public class BrandAuditVO {
        @ApiModelProperty(value = "品牌id")
        private ProcessVO id;
        @ApiModelProperty(value = "品牌名称")
        private ProcessVO name;
        @ApiModelProperty(value = "品牌log")
        private ProcessVO logoUrl;
        @ApiModelProperty(value = "审核状态 状态 0审核中，1审核通过，2审核打回，3审核不通过")
        private ProcessVO status;
        @ApiModelProperty(value = "新增状态 状态 0不新增，1新增")
        private ProcessVO addStatus;
        @ApiModelProperty(value = "类目审核状态 状态 0审核中，1审核通过，2审核打回，3审核不通过")
        private ProcessVO categoryStatus;
        @ApiModelProperty(value = "品牌资质")
        private List<QualificationInfoVO> qualificationInfoVOList = new ArrayList<>();
        @ApiModelProperty(value = "品牌类目")
        private List<BrandCategoryVO> brandCategoryVOList = new ArrayList<>();
    }

    @Data
    public static class BrandCategoryVO {
        @ApiModelProperty(value = "类目ID")
        private ProcessVO categoryId;
        @ApiModelProperty(value = "审核状态 状态 0审核中，1审核通过，2审核打回，3审核不通过")
        private ProcessVO status;
        @ApiModelProperty(value = "新增状态 状态 0不新增，1新增")
        private ProcessVO addStatus;
    }

    @Data
    public class SalesAreaVO {
        @ApiModelProperty(value = "区域id")
        private ProcessVO areaId;
    }

    @Data
    public class AuditInfoVO {
        @ApiModelProperty(value = "审核人ID")
        private ProcessVO sysUserId;
        @ApiModelProperty(value = "审核表ID")
        private ProcessVO auditId;
        @ApiModelProperty(value = "审核状态 状态 0审核中，1审核通过，2审核打回，3审核不通过")
        private ProcessVO status;
        @ApiModelProperty(value = "审核类型 0注册，1开店，2资质变更，3新增品牌，4新增类目")
        private ProcessVO auditType;
        @ApiModelProperty(value = "审核意见")
        private ProcessVO content;
        @ApiModelProperty(value = "保证金")
        private ProcessVO earnestMoney;
        @ApiModelProperty(value = "年费")
        private ProcessVO annualFee;
    }
}